//
//  main.c
//  21. mergeTwoLists
//
//  Created by edz on 2020/7/6.
//  Copyright © 2020 edz. All rights reserved.
//

/*
 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
 示例：

 输入：1->2->4, 1->3->4
 输出：1->1->2->3->4->4
 */

#include <stdio.h>

struct ListNode {
    int val;
    struct ListNode *next;
};

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){
    if (!l1) {
        return l2;
    }
    if (!l2) {
        return l1;
    }
    if (l1->val < l2->val) {
        l1->next = mergeTwoLists(l1->next , l2);
        return l1;
    }
    else{
        l2->next = mergeTwoLists(l2->next , l1);
        return l2;
    }
}
